# 作者: 王道 龙哥
# 2025年02月19日14时04分15秒
# xxx@qq.com

def homework1():
    """
    有7个整数，其中有3个数出现了两次，1个数出现了一次， 找出出现了一次的那个数
    异或满足交换律
    :return:
    """
    nums_list = [1, 1, 2, 3, 2, 6, 6]
    result = 0
    for i in nums_list:
        result ^= i
    print(result)


# homework1()


def homework6():
    """
    有8个整数，其中有3个数出现了两次，2个数出现了一次， 找出出现了一次的那2个数。
    :return:
    """
    nums_list = [1, 1, 2, 2, 3, 6, 6, 8, 3, 9, 8, 10]
    result = 0
    for i in nums_list:  # 把所有的数异或到 一起
        result ^= i
    # print(result)
    # 拿result某一位为1的数
    split_flag = result & -result
    result_list1, result_list2 = [], []
    ret1 = ret2 = 0
    for i in nums_list:
        if i & split_flag:  # 为真放到result_list1
            # result_list1.append(i)
            ret1 ^= i
        else:  # 为假放到result_list2
            # result_list2.append(i)
            ret2 ^= i
    # print(result_list1, result_list2)
    print(f'找到了出现1次的两个数，分别是{ret1},{ret2}')


homework6()
